Contents
前言
特別說明一下,這一篇實在是寫得很無力,很多地方是一頭霧水的…
只能開學再問問了。
Classification: Probabilistic Generative Model (L5)
很多地方都被我跳過了….
Regression
如果把 Classification 直接用 Regression 來解,有可能會發生:
我們以二元分類為例,output 接近 1 就是第一類 ; output 接近 -1 就是第二類。
從圖中可以看出綠色的線是較好的,但如果用 regression 下去學,它會產生紫色那條。
因為對於右下角那筆資料(第一類)而言,它們在綠線的情況下,是離 1 很遠的。而 Regression 會希望第一類的資料輸出越接近 1 越好。它會懲罰那些太正確的資料(>>1)。
也就是說 Regression 中定義 function 好壞的方式對分類來說是不適用的。
還有在多元分類的情況下,如果各類中間並沒有關係存在的話,結果也不會好。
其他方法
可以用下圖中的這種方法 。
而 loss function 就改成我們的 output 不符合 training data 的次數。
如何找到這最好的 function ,可以用如 Perceptron、SVM 等方法。但這邊我們先用機率的角度來解。
Generative model
把 class 1、2 看成兩個箱子,
我們只要可以算出圖中紅框中的數值,就能得知 $x$ 屬於各類的機率為何。
而這樣子的作法叫做 Generative Model ,原因是我們可以拿這個 model 來產生出 $x$ ,也就是可以算出某一個 $x$ 出現的機率,就能知道它的 distribution 。(式子在上圖的最下面)
我們可以假設所有的資料都是從 Gaussian distribution 取樣出來的,當前看到的 training data 只是取樣的冰山一角,
所以現在要做的就是,根據現有的資料來找出這個 Gaussian distribution。
Gaussian distribution
Input 是 vector $x$(寶可夢的各項素值)。output 是 $x$ 產生的機率(機率密度)。
主要取決於 mean $\mu$ 和 covariance matrix $\Sigma$ 。
接著就是要用這些資料算出 $\mu$ 和 $\Sigma$ ,
這樣當我們有一個新的 $x$ 時,就能代進 Gaussian distribution 的式子裡,求出這個 $x$ 被取樣出來的機率了。
Maximum Likelihood
任何一個 Gaussian (不同的 $\mu$ 和 $\Sigma$ )都有可能產生出我們現在的這些資料,只是有些點機率低,有些高而已。
因此不同的 Gaussian 產生出現在這些資料的機率是不一樣的 => different likelihood
這裡的 Likelihood function ( $L(\mu,\Sigma)$ ) ,輸入是 Gaussian 的 $\mu$ 和 $\Sigma$ ,輸出則是 Gaussian 「產生這些資料的機率」 為何。(圖中的例子來看,資料就是那79個點)
而這邊產生出各個點的機率是獨立的,所以 $L(\mu,\Sigma)$ 就是將產生各個點的機率 $f_{\mu,\Sigma}(x)$ 相乘起來。
現在我們要找的就是一組 $\mu,\Sigma$ ,使 $L(\mu,\Sigma)$ 的值為最大,也就是使這個 Gaussian 產生出資料中 79 個點的 likelihood 是最大的( 產生這些資料的機率最高的一組參數 ) ,
寫作 $({\mu}^*, \Sigma^*)$。 => maximum likelihood
我們就把這個 Gaussian 當作是產生出我們資料的 Gaussian。
${\mu}^*$ 就會是這79個 $x^n$ 的 平均。
$\Sigma^*$ 則是它們的 共變異數(Covariance)。
這邊補充說明一下:
機率( Probability )
Probability is used before data are available to describe possible future outcomes given a fixed value for the parameter (or parameter vector). - wikipedia
在已知一些參數的情況下,用來預測接下來得到的 結果 的函數。
似然性( Likelihood ) (Likelihood function)
Likelihood is used after data are available to describe a function of a parameter (or parameter vector) for a given outcome. - wikipedia
在已知某些觀測所得到的結果時,用來估計相關 參數 的函數。
例子
(水系和一般系的寶可夢)
先求出它們的 $\mu$ 和 $\Sigma$。
接著就可以來看某一個 $x$ 屬於各類的機率了。
(>0.5 就是水系)
然而就算增加到 7 個 feature ,其正確率仍舊不高。
改進成 linear model
而這是因為在不同 class 下,我們給它不同的參數,會導致 model 太複雜而 variance 過高,容易 overfitting。
所以我們可以給這兩個 class 同一個 covariance matrix ,這樣就能減少它的參數。(仍舊是不同 Gaussian ,$\mu$ 不同)
可以把式子寫成這樣:
$\mu$ 的算法和原本一樣,把某系的 x 加起來做平均。
當是水系時就用 $\mu^1$,一般系就用 $\mu^2$,(不是全部乘在一起)。
$\Sigma$ 的就要改成圖片中那樣。
使用同一個 covariance matrix ,會使分類的線變成一直線,我們稱之為 linear model。
再把其他 feature 考慮進去後,正確率就有大幅提升了。
結論
最後統整出來的步驟就是:
Probability Distribution
要用甚麼樣的機率模型取決於資料,例如是 binary feature 的話,我們就可以用 Bernoulli distribution 。
如果我們假設的是所有維度的 feature 都是 獨立 的,這樣就是 Naive Bayes Classifier。
在 $C_1$ 中 $x$ 產生的機率( $P(x|C_1)$ ),就可以寫成各項 feature 在 $C_1$ 中出現的機率相乘。
(在寶可夢的例子中,這樣的方法太過簡單(bias 較大),準確率不高)
Posterior Probability
(Posterior Probability: 基本上就是 條件機率)
最後求出來的 $P(C_1|x)$ ,x 屬於某類的機率,
就會是將 $w \cdot x + b$ 代進 sigmoid function 後的結果。
(推導過程省略)
$z = w \cdot x + b$
在 Generative model 中,我們做的是先用某些方法找到式子中的各項參數,在代進去求機率。(上面小節)
那如果試著直接找 $w,b$ 呢?那就是下一章節要講的 logistic regression。